package com.wkk.exception;

import lombok.Getter;

/**
 * @author : WangKeKe
 * @date : 2020/10/26 9:53
 * Description :  错误信息枚举 - 根据业务进行添加
 * 所有手动抛出的错误信息，都应在错误信息枚举ExceptionEnum进行统一维护。
 * 不同的业务使用不同的错误码。方便在报错时进行分辨。快速定位问题。
 */
@Getter
public enum ExceptionEnum {

    /**
     * 未知异常
     */
    UNKNOWN_EXCEPTION(100, "未知异常"),

    /**
     * 添加失败
     */
    ADD_ERROR(103, "添加失败"),

    /**
     * 更新失败
     */
    UPDATE_ERROR(104, "更新失败"),

    /**
     * 删除失败
     */
    DELETE_ERROR(105, "删除失败"),

    /**
     * 查找失败
     */
    GET_ERROR(106, "查找失败"),
    ;

    private Integer code;

    private String msg;

    ExceptionEnum(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    /**
     * 通过状态码获取枚举对象
     *
     * @param code 状态码
     * @return 枚举对象
     */
    public static ExceptionEnum getByCode(int code) {
        for (ExceptionEnum resultEnum : ExceptionEnum.values()) {
            if (code == resultEnum.getCode()) {
                return resultEnum;
            }
        }
        return null;
    }
}
